home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 37 / CD Expert nº 37.iso / LastCall / lastcall.exe / stuff / lastcall.dxr / 00081_Mixing spoon Behavior.ls < prev    next >
Encoding:
Text File  |  2000-03-27  |  3.1 KB  |  152 lines

  1. property pSpr, pOrigMember, pDraggingMember, pDragging, pOrigLoc, pOrigReg, pIngredient, pTimer
  2.  
  3. on beginSprite me
  4.   pSpr = sprite(me.spriteNum)
  5.   pOrigMember = pSpr.member
  6.   pDraggingMember = nextMember(pOrigMember)
  7.   pOrigLoc = pSpr.loc
  8.   pIngredient = #spoon
  9. end
  10.  
  11. on mouseDown me
  12.   global gSoundFXchan, gThrottleRate
  13.   if pDragging then
  14.     mixableSprite = checkIfMixable(me)
  15.     if mixableSprite then
  16.       sendSprite(mixableSprite, #mPopTop)
  17.       startMixing = nowTicks()
  18.       spoonRate = min(gThrottleRate, 3)
  19.       repeat while the stillDown and checkIfMixable(me)
  20.         if not soundBusy(gSoundFXchan) then
  21.           if sendSprite(mixableSprite, #mHasIce) then
  22.             soundFX("stir_icewater_in_mglass", 0, 0)
  23.           else
  24.             soundFX("stir_water_in_mglass", 0, 0)
  25.           end if
  26.         end if
  27.         repeat with X = 1 to 10
  28.           if ticksSince(startMixing) > (spoonRate * X) then
  29.             pSpr.member = nextMember(pDraggingMember, X)
  30.           else
  31.             X = X - 1
  32.           end if
  33.           checkElapsedTime()
  34.           updateStage()
  35.           if X = 10 then
  36.             startMixing = nowTicks()
  37.           end if
  38.         end repeat
  39.       end repeat
  40.       stopSoundFX()
  41.       sendSprite(mixableSprite, #mStirred)
  42.       pSpr.member = pDraggingMember
  43.       updateStage()
  44.     else
  45.       mReplaceIt(me)
  46.     end if
  47.   else
  48.     if draggingAnything() then
  49.       replaceDraggingAnything()
  50.       exit
  51.     end if
  52.     pSpr.member = pDraggingMember
  53.     mPickMeUp(me)
  54.     repeat while the stillDown
  55.       checkElapsedTime()
  56.       updateStage()
  57.     end repeat
  58.   end if
  59. end
  60.  
  61. on mReplaceIt me
  62.   if not pSpr.pDragging then
  63.     exit
  64.   end if
  65.   pSpr.member = pOrigMember
  66.   pSpr.loc = pOrigLoc
  67.   pSpr.visible = 1
  68.   pDragging = 0
  69.   restoreHelpPointerState()
  70.   resetCursor()
  71.   pSpr.locZ = me.spriteNum
  72.   removeFromActorList(pSpr)
  73.   pTimer = nowTicks()
  74. end
  75.  
  76. on endSprite me
  77.   removeFromActorList(pSpr)
  78. end
  79.  
  80. on mouseUpOutSide
  81.   nothing()
  82. end
  83.  
  84. on checkIfMixable me
  85.   global gBarGlassSprites, gMixingVesselsList
  86.   mixableSprites = [49, 51, 53, 79, 83, 87]
  87.   foundSprite = 0
  88.   repeat with thisSprite in mixableSprites
  89.     if sendSprite(thisSprite, #mOverItem, pSpr, the mouseLoc) then
  90.       sendSprite(thisSprite, #mPopTop)
  91.       foundSprite = thisSprite
  92.       next repeat
  93.     end if
  94.     sendSprite(thisSprite, #mReplaceTop)
  95.   end repeat
  96.   return foundSprite
  97. end
  98.  
  99. on mPickMeUp me
  100.   storeLastIngredient(pIngredient)
  101.   replaceDraggingAnything()
  102.   returnToBar(VOID, 1)
  103.   storeHelpPointerState()
  104.   hideToolTip()
  105.   hideCursor()
  106.   pSpr.member = pDraggingMember
  107.   pDragging = 1
  108.   addToActorList(pSpr)
  109.   updateStage()
  110.   pSpr.locZ = 125
  111. end
  112.  
  113. on stepFrame me
  114.   if inMenuMode() then
  115.     exit
  116.   end if
  117.   checkIfMixable(me)
  118.   pSpr.loc = the mouseLoc
  119. end
  120.  
  121. on mouseUp me
  122.   nothing()
  123. end
  124.  
  125. on mouseEnter me
  126.   pTimer = nowTicks()
  127.   if not draggingAnything() then
  128.     showToolTip(pSpr, #spoon)
  129.   end if
  130. end
  131.  
  132. on mouseLeave me
  133.   if not draggingAnything() then
  134.     hideToolTip()
  135.   end if
  136. end
  137.  
  138. on mouseWithin
  139.   if draggingAnything() then
  140.   else
  141.     if tipTickRange(pTimer) and not pDragging then
  142.       forceToolTip(pSpr, #spoon)
  143.     else
  144.       dismissToolTip()
  145.     end if
  146.   end if
  147. end
  148.  
  149. on mDoneDragging
  150.   nothing()
  151. end
  152.